package com.zingrow.web.report.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.zingrow.common.exception.NumberErrorException;

public interface IRptStatisticsService {

	/**
	 * 新增站点维度表
	 * 
	 * @param record
	 * @return
	 * @throws NumberErrorException
	 */
	boolean insterDimensionDomain(List<Integer> ifmIds, Date StartTime, Date endTime, Integer cycleNum)
			throws NumberErrorException;

	/**
	 * 方案排行
	 * 
	 * @param ifmIds
	 * @param StatisticsTime
	 * @return
	 * @throws NumberErrorException
	 */
	boolean insterPlanRanking(List<Integer> ifmIds, Date StatisticsTime) throws NumberErrorException;

	/**
	 * 渠道维度
	 * 
	 * @param ifmIds
	 * @param StatisticsTime
	 * @return
	 * @throws NumberErrorException
	 */
	boolean insterChannel(List<Integer> ifmIds, Date StatisticsTime) throws NumberErrorException;

	/**
	 * 方案统计维度
	 * 
	 * @param ifmIds
	 * @param StatisticsTime
	 * @return
	 * @throws NumberErrorException
	 */
	boolean insterPlan(List<Integer> ifmIds, Date StatisticsTime) throws NumberErrorException;

	/**
	 * 方案新闻排行维度
	 * 
	 * @param ifmIds
	 * @param StatisticsTime
	 * @return
	 * @throws NumberErrorException
	 */
	boolean insterNewsRanking(List<Integer> ifmIds, Date StatisticsTime) throws NumberErrorException;

	/**
	 * 方案微信排行维度
	 * 
	 * @param ifmIds
	 * @param StatisticsTime
	 * @return
	 * @throws NumberErrorException
	 */
	boolean insterWeixinRanking(List<Integer> ifmIds, Date StatisticsTime) throws NumberErrorException;

	/**
	 * 方案微博排行维度
	 * 
	 * @param ifmIds
	 * @param StatisticsTime
	 * @return
	 * @throws NumberErrorException
	 */
	boolean insterWeiboRanking(List<Integer> ifmIds, Date StatisticsTime) throws NumberErrorException;

	/**
	 * 方案论坛排行维度
	 * 
	 * @param ifmIds
	 * @param StatisticsTime
	 * @return
	 * @throws NumberErrorException
	 */
	boolean insterBbsRanking(List<Integer> ifmIds, Date StatisticsTime) throws NumberErrorException;

	/**
	 * 删除统计维度表
	 * 
	 * @param ifmIds
	 * @param StatisticsTime
	 * @return
	 * @throws NumberErrorException
	 */
	boolean deleteStatistics(Map<Integer, Date> map) throws NumberErrorException;

	/**
	 * 删除后重新统计新增维度表
	 * 
	 * @param map
	 * @return
	 * @throws NumberErrorException
	 */
	boolean deleteAndInsterStatistics(Map<Integer, Date> map) throws NumberErrorException;
	
	/**
	 * 判断报告ID是否存在
	 * @param id
	 * @return
	 */
	boolean selectDomainId(Long id);
}
